﻿Imports DAO
Imports DTO
Imports System.Text

Public Class NhanVienBUS

    '' '' lấy toàn bộ nhân viên đưa lên DataGirdView
    Public Function LayNhanVien() As DataTable
        Dim dt As New DataTable
        Dim nvDAO As New NhanVienDAO
        dt = nvDAO.LayDanhSachNhanVien()
        Return dt
    End Function

    Public Sub KiemTra(ByVal nv As NhanVienDTO)
        If nv.laytenDN = "" Then
            Throw New Exception("UserName không được để trống")
        ElseIf nv.LayDiaChi = "" Then
            Throw New Exception("Địa chỉ không được để trống")
        ElseIf nv.LayTenHo = "" Then
            Throw New Exception("Họ tên không được để trống")
        ElseIf nv.LayGioiTinh = "" Then
            Throw New Exception("Bạn chưa chọn giới tính")
        End If

        If nv.LayPass.Length < 6 Then
            Throw New Exception("Mật khẩu phải nhiều hơn 5 kí tự")
        End If

        If nv.LaySDT.ToString.Length > 15 Then
            Throw New Exception("Số điện thoại quá dài" & Chr(13) & "vui lòng kiểm tra lại")
        End If

        If nv.LaySDT.ToString.Length < 8 Then
            Throw New Exception("Số điện thoại quá ngắn" & Chr(13) & "vui lòng kiểm tra lại")

        End If
    End Sub
    ' ' ' ' Thêm 1 nhân viên 
    Public Sub ThemNhanVien(ByVal nv As NhanVienDTO)
        ' ' kiểm tra không cho 1 số thuộc tính rỗng
        KiemTra(nv)
        ' ' '  Kiểm tra xem UserName đã tồn tại chưa
        Dim kt As New DataTable
        kt = LayNhanVien()
        For i As Integer = 0 To kt.Rows.Count - 1
            Dim dr As DataRow = kt.Rows(i)
            If dr.Item("UserName") = nv.laytenDN.ToString() Then
                Throw New Exception("UserName đã tồn tại")
            End If
        Next
        ' ' ' ' Kiểm tra mật khẩu có giống nhau không
        If nv.LayPass <> nv.LayPass_Confirm Then
            Throw New Exception("Mật khẩu không nhau")
        End If

        Dim nhanvien As New NhanVienDAO()
        nhanvien.ThemNhanVien(nv)

        ' '' ''kiem tra nhan vien ton tai chua
    End Sub

    Public Sub XoaNhanVien(ByVal nv As NhanVienDTO)
        Try
            ' kiểm tra tính hợp lệ khi nhập 1 nhân viên    
            Dim nhanvien As New NhanVienDAO()
            nhanvien.XoaNhanVien(nv)
        Catch ex As Exception

        End Try
    End Sub

    Public Sub CapNhatNhanVien(ByVal nv As NhanVienDTO)
        ' chưa kiểm tra 
        Dim nhanvien As New NhanVienDAO
        nhanvien.CapNhatNhanVien(nv)
    End Sub

    Public Function TimKiem(ByVal s As String) As DataTable
        Dim dt As New DataTable
        Dim kt As New NhanVienDAO
        dt = kt.TimKiemNhanVien(s)
        If dt.Rows.Count = 0 Then
            dt = kt.TimTheoDiaChi(s)
            If dt.Rows.Count = 0 Then
                Throw New Exception("Không tìm thấy thông tin nhân viên")
            End If
        End If
        Return dt
    End Function

End Class
